const { request } = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    banners: [],
    cates: [],
    items: [],
    page: 1,
    pageSize: 5,
    lock: false, // 锁 在触底 请求下一页数据时上锁
    finished: false // 到达最后一页没有数据
  },
  enterDetail(e){
    const { id } = e.currentTarget.dataset;
    // 跳转到详情页
    wx.navigateTo({
      url: '/pages/detail/detail?id='+id,
    })
  },
  fetchHomeBanner(){
    request('/banner/list', {
      data: {
        type: 'item'
      }
    }).then(res => {
      if(res.data.code === 0) {
        this.setData({
          banners: res.data.data
        })
      }
    })
  },
  fetchCates(){
    // 分类
    request('/shop/goods/category/all').then(res => {
      if (res.data.code ===0 ){
        this.setData({
          cates: res.data.data
        })
      }
    })
  },
  fetchItems(){
    // 上锁 解决 多次触底问题
    this.setData({
      lock: true
    })
    request('/shop/goods/list/v2', {
      method: 'POST',
      data: {
        categoryId: '72399',
        page: this.data.page,
        pageSize: this.data.pageSize
      }
    }).then(res => {
      wx.stopPullDownRefresh();
      this.setData({
        lock: false
      })
      if(res.data.code === 0) {
        this.setData({
          items: [
            ...this.data.items,
            ...res.data.data.result
          ]
        })
      } 
      // 判断是否已经没有数据
      if (res.data.code === 700) {
        this.setData({
          finished: true
        })
      }
    })
  },
  onLoad(options) {
    this.fetchHomeBanner()
    this.fetchCates()
    this.fetchItems()
  },

  onPullDownRefresh() {
    /* 
      做上拉加载初始化
    */
    this.setData({
      page: 1,
      items: [],
      finished: false
    })
    this.fetchItems()
  },

  onReachBottom() {
   
    // 判读是否正在请求下一页 是 不再请求
    if (this.data.lock || this.data.finished){
      return false
    }
     // page+1 请求下一页数据
     this.setData({
      page: this.data.page+1
    })
    // 请求下一页数据
    this.fetchItems();
  },
  onShareAppMessage() {

  }
})